package xxl.signals.impl.events 
{
	import xxl.signals.api.events.IEvent;
	import xxl.signals.api.IDeluxeSignal;
	
	/**
	 * ...
	 * @author XXL
	 */
	public class GenericEvent implements IEvent 
	{
		protected var _bubbles:Boolean;
		protected var _target:Object;
		protected var _currentTarget:Object;
		protected var _signal:IDeluxeSignal;
		
		public function GenericEvent(bubbles:Boolean = false) 
		{
			_bubbles = bubbles;
		}
		
		/* INTERFACE xxl.signals.core.events.IEvent */
		
		public function get target():Object 
		{
			return _target;
		}
		
		public function set target(value:Object):void 
		{
			_target = value;
		}
		
		public function get currentTarget():Object 
		{
			return _currentTarget;
		}
		
		public function set currentTarget(value:Object):void 
		{
			_currentTarget = value;
		}
		
		public function get signal():IDeluxeSignal 
		{
			return _signal;
		}
		
		public function set signal(value:IDeluxeSignal):void 
		{
			_signal = value;
		}
		
		public function get bubbles():Boolean 
		{
			return _bubbles;
		}
		
		public function set bubbles(value:Boolean):void 
		{
			_bubbles = value;
		}
		
		public function clone():IEvent 
		{
			return new GenericEvent(_bubbles);
		}
		
	}

}